using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace QldtSdh.DAL.Models.Mapping
{
	public class PhongHocMap : EntityTypeConfiguration<PhongHoc>
	{
		public PhongHocMap()
		{
			// Khoá chính
			this.HasKey(t => t.MaPhongHoc);

			// Các cột
			this.Property(t => t.MaPhongHoc)
				.IsRequired()
                .HasMaxLength(50);
            this.Property(t => t.TenPhongHoc)
                .IsRequired()
                .HasMaxLength(50);
			this.Property(t => t.MaCoSoDaoTaoGUID)
				.IsRequired()
                .HasMaxLength(50);

			// Ánh xạ Property của POCO vào Column của Table
			this.ToTable("PhongHoc");
			this.Property(t => t.MaPhongHoc).HasColumnName("MaPhongHoc");
            this.Property(t => t.TenPhongHoc).HasColumnName("TenPhongHoc");
			this.Property(t => t.MaCoSoDaoTaoGUID).HasColumnName("MaCoSoDaoTaoGUID");
			this.Property(t => t.SoLuongHocToiDa).HasColumnName("SoLuongHocToiDa");
			this.Property(t => t.SoLuongThiToiDa).HasColumnName("SoLuongThiToiDa");

			// Các quan hệ
			this.HasRequired(t => t.CoSoDaoTao)
				.WithMany(t => t.ListPhongHoc)
				.HasForeignKey(d => d.MaCoSoDaoTaoGUID);

		}
	}
}
